package com.easondongh.blog.service;

import com.easondongh.blog.pojo.BlogCollection;
import com.easondongh.blog.pojo.Comment;
import com.easondongh.blog.pojo.User;
import com.easondongh.blog.utils.Page;

import java.util.List;
import java.util.Map;

/**
 * @author EasonDongH
 * @date 2020/3/19 16:40
 */
public interface UserService {

    /**
     * 根据用户名查询
     * @param username
     * @return
     */
    User getByUsername(String username);

    /**
     * 保存
     * @param user
     */
    void save(User user);

    /**
     * 更新
     * @param user
     */
    void update(User user);

    /**
     * 修改个人信息
     * @param user
     */
    void updateInfo(User user);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    User getById(Integer id);

    /**
     * 根据id删除
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 分页查询
     * @param page
     * @return
     */
    Page<User> getByPage(Page<User> page);

    /**
     * 重置密码
     * @param userIds
     */
    void resetPwd(List<Integer> userIds);

    /**
     * 用户注册
     * @param user
     */
    void register(User user);

    /**
     * 获取当前登录用户的收藏、评论数
     * @return
     */
    Map<String, Integer> getCollectionAndCommentCount();

    /**
     * 分页查询我的收藏
     * @param page
     * @return
     */
    Page<BlogCollection> getCollectionByPage(Page<BlogCollection> page);

    /**
     * 分页查询我的评论
     * @param page
     * @return
     */
    Page<Comment> getCommentByPage(Page<Comment> page);
}
